package study.java.jdk.jdk8._5_lambda.echo;

import lombok.extern.slf4j.Slf4j;
import org.junit.Test;

/**
 * （1）p04_lambda 表达式的语法格式如下：
 * (parameters) -> expression
 * (parameters) ->{ statements; }
 * （2）lambda表达式的重要特征：
 * （a）可选类型声明：不需要声明参数类型，编译器可以统一识别参数值
 * （b）可选的参数圆括号：一个参数无需定义圆括号，但多个参数需要定义圆括号
 * （c） 可选的大括号：如果主体包含了一个语句，就不需要使用大括号
 * （d）可选的返回关键字：如果主体只有一个表达式返回值则编译器会自动返回值，大括号需要指定明表达式返回了一个数值
 */
@Slf4j
public class Echo_Test {

    @Test
    public void test1() {
        //不用括号
        Echo hi = name -> {
            log.info("hi, {}", name);
            return "s2_switch";
        };
        hi.echo("wangzhj");

        //用括号
        Echo bye = (name) -> {
            log.info("bye, {} ", name);
            return "123";
        };
        bye.echo("wzj");
    }
}
